<?php
// ConProposta.php
/**
 * Model de ConProposta
 * @filesource  14/01/2012
 * @author      Estrada Virtual <http://estradavirtual.com.br>
 * @copyright   Copyright <2012> Estrada Virtual
 * @package     <<application>>
 * @subpackage  <<application>>.application.models
 * @version     $Id$
 */
class Model_ConProposta extends Ev_Db_Table
{
    protected $_name = 'con_proposta';
    protected $_dependentTables  = array('Model_ConEntrega');
    protected $_primary = array('id_proposta');

    protected $_referenceMap = array(
                    'Cliente' => array(
                            'columns'       => 'fk_cliente',
                            'refTableClass' => 'Model_Cliente',
                            'refColumns'    => 'id_cliente',
                         ),
                    'Contato' => array(
                            'columns'       => 'fk_contato',
                            'refTableClass' => 'Model_Contato',
                            'refColumns'    => 'id_contato',
                         ),
                    'Usuario' => array(
                            'columns'       => 'fk_usuario_responsavel',
                            'refTableClass' => 'Model_Usuario',
                            'refColumns'    => 'id_usuario',
                         ));

    /**
     * Método chamado antes da salvar o registro, utilizado para validações de table
     * @param $oRow Zend_Db_Table_Row
     * @return unknown_type
     */
    public function _preSave($oRow, $mode)
    {
        if ($mode == Ev_Db_Table::K_INSERT) {
            if (!isset($oRow->vl_custo)) {
                $oRow->vl_custo = 0;
            }
        }
        return parent::_preSave($oRow, $mode);
    }

    public function calcularValores($id)
    {
        $row = $this->find($id)->current();
        $rowSetEntregas = $row->findModel_ConEntrega();

        $nr_valor = 0;
        foreach ($rowSetEntregas as $rowEntrega) {
            $nr_valor += $rowEntrega->nr_valor;
        }
        $row->vl_custo = $nr_valor;
        $row->save();
    }
}
